/**
 * 项目名称:
 *
 * @Author: 夏国倩
 * @Date: 2023/10/12 11:12
 * @Copyright
 */
package multithreading;
/*
某线程正在休眠，如果打断他的休眠
作用：在线程收到阻塞时候抛出一个中断信号，这样线程就可以退出阻塞的状态
如果线程被Object.wait 、 Thread.join 、 Thread.sleep三种方法之一的阻塞
Thread.interrupt()方法会收到一个中断信号（InterruptedException）
从而提早的终结阻塞状态

以下方式是依靠异常处理机制 InterruptedException
 */
public class ThreadTest8 {
    public static void main(String[] args) throws InterruptedException {
        //需求：启动线程 5s之后打断线程的休眠
        Thread t=new Thread(new Processor8());
        //起名
        t.setName("t");
        //启动
        t.start();
        //5s之后
        Thread.sleep(5000);
        //打断休眠
        //接收到了一个中断异常 InterruptedException
        t.interrupt();
    }
}
class Processor8 implements Runnable{

    @Override
    public void run() {
        try {
            Thread.sleep(1000000000000000000L);
            System.out.println("hello world");
        } catch (InterruptedException e) {
            //throw new RuntimeException(e);
        }
        for (int i = 0; i < 10; i++) {
            System.out.println(Thread.currentThread().getName()+"----->"+i);
        }
    }
}